home *** CD-ROM | disk | FTP | other *** search
/ Professional Soft Collection 1.02 / Professional Soft Collection 1.02.iso / dmf_ps2.cmd < prev    next >
OS/2 REXX Batch file  |  1995-03-23  |  10KB  |  297 lines

  1. /*     */
  2.     /*
  3.     * ********************************************************************
  4.     * *             Copyright (c) IBM Corporation, 1995                  *
  5.     * *                     All Rights Reserved                          *
  6.     * ********************************************************************
  7.     *
  8.     *
  9.     * DESCRIPTION: This REXX command file is to be used to make changes
  10.     *              to CONFIG.SYS for IBM Microchannel PS/2's in order
  11.     *              to install Microsoft applications that are in DMF
  12.     *              format on your IBM PS/2 Microchannel system.
  13.     *
  14.     */
  15.  
  16.    /*      trace I */
  17.     call init
  18.  
  19.     /* Get the version of the current OS/2 system. */
  20.     version = SysOs2Ver()
  21.     if version < '2.30' then  /* 2.30 represents Warp version. */
  22.       do
  23.         say 'é φΓ«⌐ óÑαß¿¿ OS/2 ñá¡¡δ⌐ ¬«¼á¡ñ¡δ⌐ Σá⌐½ ¡Ñ αáí«ΓáÑΓ.'
  24.         say 'Åα«úαἼᠺáóÑαΦÑ¡á.'
  25.         exit
  26.       end
  27.     "@cls"
  28.     Say ' '
  29.     Say ' '
  30.     Say ' '
  31.     Say '¥Γá »α«úαἼᠻ«ºó«½∩ÑΓ »«½∞º«óáΓѽ∩¼ OS/2 Warp, αáí«ΓáεΘ¿¼ ¡á'
  32.     Say '¬«¼»∞εΓÑαáσ IBM PS/2, ¿¡ßΓá½½¿α«óáΓ∞ »α«úαá¼¼¡δÑ ßαÑñßΓóá,'
  33.     Say '»«ßΓáó½∩ѼδÑ ¡á ñ¿ß¬ÑΓáσ, »«ñú«Γ«ó½Ñ¡¡δσ ó ¡ÑßΓá¡ñáαΓ¡«¼ Σ«α¼áΓÑ DMF.'
  34.     Say ' '
  35.     Say '¥Γá »α«úαἼᠿº¼Ñ¡¿Γ Σá⌐½ CONFIG.SYS, τΓ«íδ «íÑß»Ñτ¿Γ∞'
  36.     Say 'τΓÑ¡¿Ñ ñ¿ß¬ÑΓ DMF. Å«ß½Ñ ¿¡ßΓá½½∩µ¿¿ »α«úαá¼¼¡δσ ßαÑñßΓó DMF'
  37.     Say 'ß¡«óá óδ»«½¡¿ΓÑ φΓπ »α«úαá¼¼π, π¬áºáó αѪ¿¼ é,'
  38.     Say 'τΓ«íδ ó«ßßΓá¡«ó¿Γ∞ »Ñαó«¡áτá½∞¡δ⌐ Σá⌐½ CONFIG.SYS.'
  39.     Say ' '
  40.     Say 'ùΓ«íδ ¿º¼Ñ¡¿Γ∞ Σá⌐½ CONFIG.SYS OS/2 Warp, «íÑß»Ñτ¿óáεΘ¿⌐'
  41.     Say '»«ññÑαª¬π ¿¡ßΓá½½∩µ¿¿ ß ñ¿ß¬ÑΓ Σ«α¼áΓá DMF, óóÑñ¿ΓÑ ê'
  42.     Say ' '
  43.     Say 'ùΓ«íδ «Γ¬áºáΓ∞ß∩ «Γ ¿º¼Ñ¡Ñ¡¿⌐ ó Σá⌐½Ñ CONFIG.SYS OS/2 Warp,'
  44.     Say 'ßó∩ºá¡¡δσ ß DMF, óóÑñ¿ΓÑ é'
  45.     Say ' '
  46.     Say 'ùΓ«íδ óδ⌐Γ¿ ¿º φΓ«⌐ »α«úαá¼¼δ, ¡¿τÑú« ¡Ñ ¼Ñ¡∩∩, óóÑñ¿ΓÑ ¢'
  47.     Say ' '
  48.     Say 'ÄΓóÑΓ∞ΓÑ ê (꺼ѡ¿Γ∞), é (é«ßßΓá¡«ó¿Γ∞) ¿½¿ ¢ (éδσ«ñ).'
  49.  
  50.     parse upper pull answer .   /* Get the answer */
  51.  
  52.     if (answer='¢' | answer='é¢òÄä') then    /* If answer is exit then exit */
  53.       say 'éδσ«ñ ¿º ¬«¼á¡ñ¡«ú« Σá⌐½á!'
  54.  
  55.     else if (answer='éÄææÆÇìÄéêÆ£' | answer='é') then
  56.       call UNDO    /* If the answer is UNDO then go to the UNDO Subroutine */
  57.  
  58.     else if (answer='ê' | answer = 'êçîàìêÆ£') then
  59.      do           /* If the answer is Modify then modify config.sys */
  60.       '@cls'
  61.       say ' '
  62.       say ' '
  63.       say ' '
  64.       say 'ìᠬᬫ¼ πßΓα«⌐ßΓóÑ ¿¡ßΓá½½¿α«óá¡á «»Ñαᵿ«¡¡á∩ ß¿ßΓѼá OS/2 Warp?'
  65.       say 'éóÑñ¿ΓÑ íπ¬óπ πßΓα«⌐ßΓóá ¿½¿ »πΓ∞ (¡á»α¿¼Ñα, C:\)'
  66.       say ''
  67.  
  68.         /* Check whether the given drive is valid. */
  69.         call Checkdrive        /* GO to the Checkdrive subroutine */
  70.  
  71.         fname=drive'\config.sys' /* Assign drive letter and path for config.sys */
  72.  
  73.         /* Check whether config.sys exists. */
  74.         call sysfiletree fname, 'files.', 'F'
  75.  
  76.         if files.0 < 1 then
  77.           do
  78.             say 'öá⌐½ CONFIG.SYS ¡Ñ ¡á⌐ñÑ¡.'
  79.             say 'Åα«úαἼᠺáóÑαΦÑ¡á.'
  80.             exit
  81.           end
  82.  
  83.         sname=drive'\config.dmf'  /* Assign drive letter and path to */
  84.                                   /* config.sys back up file name */
  85.  
  86.         /* Check whether config.dmf exists. */
  87.         call sysfiletree sname, 'files.', 'F'
  88.  
  89.         if files.0 >= 1 then
  90.           do
  91.             say 'öá⌐½ Config.dmf ßπΘÑßΓóπÑΓ. éδ σ«Γ¿ΓÑ Ñú« »ÑαѺỿßáΓ∞ (ä/ì)?'
  92.  
  93.             parse upper pull answer
  94.             answer = left(answer,1)
  95.             if answer = 'ì' then
  96.               do
  97.                 say 'ÅαѪñÑ τѼ »«óΓ«α¡« óδ»«½¡¿Γ∞ dmf_ps2,'
  98.                 say '»ÑαÑ¿¼Ñ¡π⌐ΓÑ ¿½¿ πñ὿ΓÑ Σá⌐½ config.dmf.'
  99.                 exit
  100.               end
  101.           end
  102.  
  103.         nname=drive'\config1.tmp'  /* Assign drive letter and path to */
  104.                                    /* temporary file */
  105.  
  106.         say 'éδ»«½¡Ñ¡¿Ñ .......'
  107.         say ' '
  108.         "@copy" fname sname ">nul 2>nul" /* Backup config.sys */
  109.  
  110.         call lineout nname,,1
  111.         do while lines(fname)   /* Parse through config.sys looking for */
  112.            str = linein(fname)  /* the string to be modified */
  113.            basedev = (substr(str,1,20))  /* Only need to look at first 20 */
  114.                                          /* characters of the line */
  115.            select
  116.               when substr(basedev,1,20) == 'BASEDEV=IBM1FLPY.ADD' then do
  117.                   if left(reverse(str), 4) \= 'ACM/' then do
  118.                     call lineout nname, str '/MCA'  /* Add /MCA option to */
  119.                     end                             /* IBM1FLPY.ADD driver */
  120.                   else
  121.                     call lineout nname, str
  122.                     end
  123.               when substr(basedev,1,20) == 'BASEDEV=IBM2FLPY.ADD' then do
  124.                     call lineout nname, 'REM' str /* REM out the */
  125.                     end                           /* IBM2FLPY.ADD driver */
  126.               otherwise do
  127.                     call lineout nname, str
  128.                     end
  129.            end
  130.          end
  131.  
  132.          call lineout fname
  133.          call lineout nname
  134.          "@copy" nname fname ">nul 2>nul"
  135.          "@erase" nname
  136.          "@cls"
  137.  
  138.  
  139.          say ''
  140.          say ''
  141.          say ''
  142.          say ''
  143.          say '꺼ѡѡ Σá⌐½' fname
  144.          say ''
  145.          say 'öá⌐½ CONFIG.SYS ¿º¼Ñ¡Ñ¡. ÅÑαó«¡áτá½∞¡á∩ ¬«»¿∩ φΓ«ú« Σá⌐½á'
  146.          say 'ß«σαá¡Ñ¡á ó Σá⌐½Ñ CONFIG.DMF. ä½∩ Γ«ú«, τΓ«íδ ¿º¼Ñ¡Ñ¡¿∩ óßΓπ»¿½¿'
  147.          say 'ó ß¿½π, ºá¬α«⌐ΓÑ «»Ñαᵿ«¡¡πε ß¿ßΓÑ¼π ¿ »ÑαѺáúαπº¿ΓÑ ¬«¼»∞εΓÑα.'
  148.          say ''
  149.          say 'Åα¿½«ªÑ¡¿∩ DMF πªÑ ¿¡ßΓá½½¿α«óá¡δ. ùΓ«íδ ó«ßßΓá¡«ó¿Γ∞ ß¿ßΓѼπ'
  150.          say 'ó »Ñαó«¡áτá½∞¡«Ñ ß«ßΓ«∩¡¿Ñ, »«óΓ«α¡« óδ»«½¡¿ΓÑ DMF_PS2'
  151.          say 'ß αѪ¿¼«¼ é (é«ßßΓá¡«ó¿Γ∞).'
  152.  
  153.       end
  154.     else
  155.         say 'ÄΓóÑΓ ¡Ñ αáß»«º¡á¡.'
  156.         say 'Åα«úαἼᠺáóÑαΦÑ¡á.'
  157.  
  158. exit
  159.  
  160. UNDO:
  161.     '@cls'
  162.     say ' '
  163.     say ' '
  164.     say ' '
  165.     say 'ìᠬᬫ¼ πßΓα«⌐ßΓóÑ ¿¡ßΓá½½¿α«óá¡á «»Ñαᵿ«¡¡á∩ ß¿ßΓѼá OS/2 Warp?'
  166.     say 'éóÑñ¿ΓÑ íπ¬óπ πßΓα«⌐ßΓóá ¿½¿ »πΓ∞ (¡á»α¿¼Ñα, C:\)'
  167.     say ' '
  168.  
  169.     call Checkdrive
  170.  
  171.     fname=drive'\config.sys'
  172.  
  173.     call sysfiletree fname, 'files.', 'F'
  174.     if files.0 < 1 then
  175.       do
  176.         say 'öá⌐½ CONFIG.SYS ¡Ñ ¡á⌐ñÑ¡.'
  177.         say 'Åα«úαἼᠺáóÑαΦÑ¡á.'
  178.         exit
  179.       end
  180.  
  181.     nname=drive'\config1.tmp'
  182.  
  183.     do while lines(fname)            /* This section of code is to check the */
  184.       str = linein(fname)            /* config.sys to see if the DMF changes */
  185.       basedev = (substr(str,1,24))   /* need to be UNDone. */
  186.       select
  187.         when substr(basedev,1,20) == 'BASEDEV=IBM2FLPY.ADD' then do
  188.              "@CLS"
  189.              say ' '                  /* If it finds this then display */
  190.              say ' '                  /* Message */
  191.              say ' '
  192.              say 'é Σá⌐½Ñ CONFIG.SYS ¡ÑΓ ¿º¼Ñ¡Ñ¡¿⌐ «Γ¡«ß¿Γѽ∞¡« DMF'
  193.              say 'ÄΓ¼Ñ¡∩Γ∞ ¡ÑτÑú«'
  194.              say 'Åα«úαἼᠺáóÑαΦÑ¡á.'
  195.              call exit
  196.              end
  197.         when substr(basedev,1,24) == 'REM BASEDEV=IBM2FLPY.ADD' then do
  198.              call lineout nname
  199.              call lineout fname         /* If it finds this then lets */
  200.              call undo2                 /* call undo2 to really undo the */
  201.              end                        /* DMF changes */
  202.         otherwise do
  203.               call lineout nname, str
  204.               end
  205.     end
  206.   end
  207. EXIT:
  208.     call lineout nname
  209.     "@ERASE" nname
  210.     exit
  211.  
  212. UNDO2:
  213.  
  214.    "@erase" nname
  215.  
  216.     nname=drive'\config1.tmp'
  217.  
  218.     call lineout nname,,1
  219.     do while lines(fname)
  220.       str = linein(fname)
  221.       basedev = (substr(str,1,24))
  222.  
  223.       select
  224.         when substr(basedev,1,24) == 'REM BASEDEV=IBM2FLPY.ADD' then do
  225.               newstr = (subword(str,2))
  226.               call lineout nname, newstr
  227.               end
  228.         when substr(basedev,1,20) == 'BASEDEV=IBM1FLPY.ADD' then do
  229.               parse var str final remaining
  230.               num_item = words(remaining)
  231.               do p = 1 to num_item
  232.                 if strip(word(remaining, p)) \= '/MCA' then
  233.                   final = final || ' 'word(remaining, p)
  234.               end
  235.               call lineout nname, final
  236.               end
  237.         otherwise do
  238.               call lineout nname, str
  239.               end
  240.       end
  241.     end
  242.     call lineout fname
  243.     call lineout nname
  244.     "@copy" nname fname ">nul 2>nul"
  245.     "@erase" nname
  246.     "@cls"
  247.  
  248.  
  249.     say ''
  250.     say ''
  251.     say ''
  252.     say ''
  253.     say 'öá⌐½ CONFIG.SYS ó«ßßΓá¡«ó½Ñ¡. ä½∩ Γ«ú«, τΓ«íδ ¿º¼Ñ¡Ñ¡¿∩ óßΓπ»¿½¿'
  254.     say 'ó ß¿½π, ºá¬α«⌐ΓÑ «»Ñαᵿ«¡¡πε ß¿ßΓÑ¼π ¿ »ÑαѺáúαπº¿ΓÑ ¬«¼»∞εΓÑα.'
  255.     say ''
  256. exit
  257.  
  258. CheckDrive:
  259.     /* Get all the local drive letters. */
  260.     drivemap = sysdrivemap('c:', 'LOCAL')
  261.  
  262.     parse upper pull drive .
  263.  
  264.     drive = strip(translate(drive, ' ', '\'))
  265.     num_item = words(drive)
  266.     if num_item > 1 then
  267.       do
  268.         say 'ôßΓα«⌐ßΓó« ¡Ñ αáß»«º¡á¡«.'
  269.         say 'Åα«úαἼᠺáóÑαΦÑ¡á.'
  270.         exit
  271.       end
  272.     found = 'NO'
  273.     do while drivemap \= ''
  274.       parse var drivemap head tail
  275.       drivemap = tail
  276.       head = strip(head)
  277.       if head = drive then
  278.          found = 'YES'
  279.     end
  280.  
  281.     if found = 'NO' then
  282.       do
  283.         say 'ôßΓα«⌐ßΓó« ¡Ñ αáß»«º¡á¡«.'
  284.         say 'Åα«úαἼᠺáóÑαΦÑ¡á.'
  285.       end
  286. return
  287.  
  288. /* Load in the extra function library. WPW001 */
  289. Init: Procedure
  290.  
  291.     /* Load in the extra function library */
  292.     if RxFuncQuery('SysLoadFuncs') then do
  293.         Call RXFuncAdd 'SysLoadFuncs','RexxUtil','SysloadFuncs'
  294.     end
  295.     Call SysLoadFuncs
  296. return
  297.